package com.zju.DoctorGo.service;

import com.zju.DoctorGo.dto.PaymentRequestDTO;
import com.zju.DoctorGo.dto.BillDTO;
import com.zju.DoctorGo.entity.Bill;
import com.zju.DoctorGo.entity.PaymentStatusEnum;
import jakarta.servlet.http.HttpServletRequest;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;

public interface PaymentService extends IService<Bill> {
    void createBill(BillDTO billDto) throws Exception;
    int deleteBillById(String billId) throws Exception;
    void updateBillStatByID(String billId, PaymentStatusEnum stat)throws Exception;
    String createPayment(PaymentRequestDTO paymentRequest) throws Exception;
    Bill getBillById(String billId) throws Exception;
    List<Bill> selectBillsByPaymentPartyId(int userId);
    List<Bill> selectBillsByInitiatorId(int doctorId);

    public String processNotification(HttpServletRequest request);
    public Map<String, String> extractParams(HttpServletRequest request);
    public String processVerifiedRequest(HttpServletRequest request) throws UnsupportedEncodingException;

    void updateBill(BillDTO billDto);
}
